import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useTokenStore = defineStore(
  'token',
  () => {
    const token = ref<string>('')
    const userId = ref<string>('')  // 添加 userId 存储

    // 设置 token
    const setToken = (newToken: string) => {
      token.value = newToken
      // 从 token 中解析 userId
      try {
        const payload = newToken.split('.')[1]
        const decoded = JSON.parse(atob(payload))
        userId.value = decoded.id  // 保存 userId
      } catch (error) {
        console.error('解析 token 失败:', error)
      }
    }

    // 获取 token
    const getToken = () => token.value

    // 获取 userId
    const getUserId = () => userId.value

    // 删除 token
    const removeToken = () => {
      token.value = ''
      userId.value = ''  // 清除 userId
    }

    return {
      token,
      userId,
      setToken,
      getToken,
      getUserId,
      removeToken
    }
  },
  {
    persist: {
      paths: ['token', 'userId']  // 持久化存储 userId
    }
  }
)
